Recognizes the given LEADDocument.
public AutoFormsRecognizeFormResult RecognizeForm(
LEADDocument leadDoc,
List<IMasterFormsCategory> categories
)
leadDoc
The LEADDocument object to recognize.
categories
List of Master Forms categories to use in comparison, pass null or empty to use all Master Forms in the repository.
The result of the recognition will be the Master Form with the maximum confidence value. If the confidence value is less than MinimumConfidenceKnownForm it returns null to indicate that the form type is unknown and cannot be recognized.
RecognizeForm(LEADDocument,List<IMasterFormsCategory>) is useful when you have unknown forms and need to recognize their types to archive, classify, and process.
Set RecognizeFirstPageOnly to true to indicate that only the first page of the Master Form is to be used for recognition. Otherwise, false to recognize using all pages of the Master Form.
The leadDoc parameter should have all document pages when RecognizeFirstPageOnly is set to false.
If all Master Forms have a different first page, then recognizing the form according to its first page produces faster results. The recognition of the form will stop comparing the form with other Master Forms either when the confidence value of the recognition result is greater or equal to MinimumConfidenceRecognized or when the Master Forms have all been compared.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms.Common;
using Leadtools.Forms.Auto;
using Leadtools.Document;
using Leadtools.Ocr;
using Leadtools.Forms.Recognition;
using Leadtools.Forms.Processing;
using Leadtools.Barcode;
using Leadtools.Forms;
public void AutoFormRecognitionAndProcessingLEADDocWithAttributes()
{
string root = Path.Combine(LEAD_VARS.ImagesDir, @"Forms\FormsDemo\OCR_Test");
RasterCodecs codecs = new RasterCodecs();
// Create repository
DiskMasterFormsRepository repository = new DiskMasterFormsRepository(codecs, root);
using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD))
{
ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir);
BarcodeEngine barcodeEngine = new BarcodeEngine();
AutoFormsEngine autoEngine = new AutoFormsEngine(repository, ocrEngine, barcodeEngine);
autoEngine.MinimumConfidenceKnownForm = 80;
// Load the LEADDocument from file with default options
LoadDocumentOptions loadOptions = new LoadDocumentOptions();
LEADDocument leadDoc = DocumentFactory.LoadFromFile(Path.Combine(LEAD_VARS.ImagesDir, @"Forms\Filled Forms\FCC-107_OCR_Filled.tif"), loadOptions);
// Recognize the LEADDocument
AutoFormsRecognizeFormResult result = autoEngine.RecognizeForm(leadDoc, null);
if (result == null)
return;
// Get form fields
FormPages formFields = result.MasterForm.ReadFields();
FormRecognitionAttributes attributes = result.MasterForm.ReadAttributes();
// Process Form
autoEngine.ProcessForm(leadDoc, attributes, formFields);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS23\Bin\Common\OcrLEADRuntime";
}